package com.jintoufs.dao.role;

import com.jintoufs.domain.role.Role;
import com.jintoufs.domain.role.query.RoleQuery;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 管理dao层接口定义
 */
@Repository
public interface RoleDAO {
    /**
     * 根据条件查询
     *
     * @param params
     * @return
     */
    List<Role> getByFilter(Map<String, Object> params);

    /*
    * 查找角色描述小与给定值的角色
    * 主要是用来加载当前用户可创建的用户角色
    * */
    List<Role> getSubRoles(String roleDesc);

    /**
     * 修改
     *
     * @param entity
     * @return
     */
    boolean update(Role entity);

    /**
     * 添加
     *
     * @param entity
     * @return
     */
    Integer insert(Role entity);

    /**
     * 根据ID查询
     *
     * @param id
     * @return
     */
    Role queryById(Integer id);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    void delete(Integer id);

    Long queryCountByCondtion(RoleQuery queryObject);

    List<Role> queryByCondtion(RoleQuery queryObject);

    int getCountByParams(Map<String, Object> params);
}
